# -*- coding：utf-8 -*-
"""
@Time:2024-08-1810:32
@Auth:泛彼泊舟
@File:1、闭包函数.py
@IDE:PyCharm
@模块功能：xxx
"""
"""
闭包的定义：
- 在定义一个函数的时候，嵌套了另外一个函数
- 而且内部函数使用了外部函数的变量
- 并且外部函数返回了内部函数的名字（内部函数的引用）
- 闭包的核心是内部函数使用了外部函数的变量，这个过程叫做闭包

闭包意义：
- 函数在被调用完之后，函数内部的局部变量会被销毁，为了方便保存以及使用函数外部的变量
- 可以使用闭包的形式进行调用
"""
def func_out(num1):
    def func_inner(num2):
        result = num1 + num2
        print(f"外部函数的num1:{num1},内部函数的num2：{num2},相加的结果:{result}")
    return func_inner   # 外部函数返回内部函数的引用
# 函数只有调用的时候才会执行，定义的时候不会执行
f = func_out(6) # func_inner
print(type(f))
f(8)    # f(8) = func_inner(8)
# 另外一种简写
func_out(2)(7)  # func_out(2) = func_inner(7)